package com.nenude.corejava.ch8;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class TestReaderFile {

	public static void main(String[] args) {
		File file =new  File("D:\\java11workspace\\corejava\\src\\com\\nenude\\corejava\\ch2\\DateType.java");

		if(file.exists()){
			//2.读内容  - 文件内容操作 //内容的读取是按位操作的，8bit ->byte //使用文件流的方式进行读取
			BufferedReader bufferedReader = null;
			InputStreamReader  reader = null;
			FileInputStream inputStream  = null;
			try {//使用异常捕获方法，在main方法中处理异常，
			     inputStream = new FileInputStream(file);//检查异常 ,如果不进行处理，则无法通过编译器检查，无法生成class文件
			     reader = new InputStreamReader(inputStream,"utf-8");//指定读取的编码
			     bufferedReader = new BufferedReader(reader);
			    String line =  bufferedReader.readLine();//一行一行读取文件，如果文件读取完毕，返回null
			    while(line!=null) {
			    	System.out.println(line);
			    	line =  bufferedReader.readLine();
			    }
			}catch(FileNotFoundException e) {
				e.printStackTrace();//在异常处理中，可以通过打印堆栈信息，查询程序错误提示，并进行代码处理( 给用户进行操作提示 或  指引用户进行其他操作)
			}catch (IOException e) {//一个try代码块中，可能发生多个异常，可以使用多个catch块进行异常捕获
				e.printStackTrace();
			}finally {//finally代码块跟在try块后，用于执行不管是否发生异常都要运行的代码;finally的代码一定会执行
				if(inputStream!=null) {
					try {
						inputStream.close();
					} catch (IOException e) {
					}
				}
			}
		}

		

	}

}
